/**
 * 费用耗用核查
 * @author miaoyl
 * @date 2020/04/14
 */
define(function () {

    var self,
        doc = document,
        app = win.app,
        layui = win.layui,
        element,
        table,
        table_where = {},
        cols = [[
            {field: 'AREAS', width: 160, title: '统计单位', rowspan: 2}
            , {field: 'PROJECT', width: 140, title: '项目', rowspan: 2}
            , {align: 'center', width: 140, title: '年度', colspan: 2}
            , {align: 'center', width: 140, title: '本月', colspan: 2}
        ],[
            {field: 'YEAR_SALES_SUM', width: 140, title: '销售额'}
            , {field: 'YEAR_EXPENSES_SUM', width: 140, title: '费用额'}
            , {field: 'MONTH_SALES_SUM', width: 140, title: '销售额'}
            , {field: 'MONTH_EXPENSES_SUM', width: 140, title: '费用额'}
        ]],
        table_data = []
    ;

    var Gwft400CostCheck = app.Module.extend({
        init: function () {
            self = this;
            self._super({
                _tag: 'gwft400_costcheck',
            }, win);
        },

        _call:function (obj) {
            table_data = obj.list;
            self._reloadTable({id:'gwft400_costcheck_table',data : table_data});
        },

        initTable: function () {
            layui.use(['table'], function () {
                table = layui.table;
                table.render({
                    elem: app.getByid(doc, 'gwft400_costcheck_table'),
                    data:table_data,
                    id: 'gwft400_costcheck_table',
                    height: 480,
                    cols: cols,
                    loading: true,
                    page: false,
                    done: function (res, curr, count) {
                        var data = res.data;
                        var mergeIndex = 0;//定位需要添加合并属性的行数
                        var mark = 1; //这里涉及到简单的运算，mark是计算每次需要合并的格子数
                        var columsName = ['AREAS'];//需要合并的列名称
                        var columsIndex = [0];//需要合并的列索引值
                        for (var k = 0; k < columsName.length; k++)//这里循环所有要合并的列
                        {
                            var trArr = $("[lay-id='gwft400_costcheck_table'] .layui-table-body>.layui-table").find("tr");//所有行

                            for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
                                var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
                                var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列
                                if (data[i]['AREAS'] === data[i - 1]['AREAS']) { //后一行的值与前一行的值做比较，相同就需要合并
                                    mark += 1;
                                    tdPreArr.each(function () {//相同列的第一列增加rowspan属性
                                        $(this).attr("rowspan", mark);
                                    });
                                    tdCurArr.each(function () {//当前行隐藏
                                        $(this).css("display", "none");
                                    });
                                } else {
                                    mergeIndex = i;
                                    mark = 1;//一旦前后两行的值不一样了，那么需要合并的格子数mark就需要重新计算
                                }
                            }
                            mergeIndex = 0;
                            mark = 1;
                        }
                    }
                });

                var tipsIndex = null;

                $(doc).on('click', function () {
                    tipsIndex && layer.close(tipsIndex);
                });

            });
        },

        _ready: function () {
            var vue = new Vue({
                el: '#gwft400_costcheck',
                data: '',
                methods: {
                    cancel:function () {
                        layer.close(layer.index);
                    },
                    sure:function () {

                    }
                },
                created: function () {
                    self._setEleIsReady('gwft400_costcheck');
                }
            });

            self.initTable();
        },
        _lazy: function () {
            this._super();
            layui.use(['table'], function () {
                element = layui.element;
            });
        }
    });

    return new Gwft400CostCheck();

});